Modern electronic design is typically performed with computer aided design (CAD) tools or electronic design automation (EDA) systems. To design a circuit, such as an integrated circuit (IC), a designer first creates high level behavior descriptions of the IC device using a high-level hardware design language (HDL). An EDA system typically receives the high level behavioral descriptions of the IC device and translates this high-level design language into netlists of various levels of abstraction. Essentially, the process to implement an electronic device begins with functional design and verification (e.g., using RTL), and then proceeds to physical design of a layout and verification.
Circuit designers and verification engineers use different methods to verify circuit designs. One common method of verification is the use of simulation. Simulation dynamically verifies a design by monitoring behaviors of the design with respect to test stimuli. For many types of designs, simulation can and should be performed during the design process to ensure that the ultimate goals are achievable and will be realized by the finished product.
For example, SPICE and FASTSPICE are common types of simulators that perform simulation to verify the operation of an electronic design. With these types of tools, the electronic design is converted into a system of equation(s), which is then solved for a given set of inputs to check the state of specific portions of the circuit at given points in time.
A significant portion of the data pertaining to the simulation activities may be waveform data. In many cases, the waveform is the output data that results from performing simulation on analog or analog/mixed signal designs. For example, a given circuit design may receive a set of stimulus data, where simulation of a model of that circuit design is performed using the stimulus to identify the resulting waveform pattern from expected operation of that design. In other cases, the waveform data is the input data that is fed into a circuit design for simulation.
The EDA tool may employ either a waveform viewing tool or a waveform editing tool to visually display waveform data onto the user interface of a user display apparatus. In many cases, these tools are operated in an interactive manner, where a user dynamically manipulates the tool to display the waveform data in real-time with a desired visual representation. For example, the user may manipulate the waveform tool to zoom into a specific portion of the waveform or to scroll across different portions of the waveform. This interactive manipulation permits the user to analyze the waveforms and to seek out anomalies that may indicate possible errors in the circuit design, by scanning through the data and zooming in at specific portions of the waveforms.
Under the covers, numerous computational operations may be performed to comply with the user's manipulation of the waveform tool. Such operations may involve loading the waveform data into memory, retrieving the specific data to be operated upon, performing graphical operations upon that data to generate display data as required by the user commands, and generation of the interface for display.
With interactive tools, it is desirable for these operations to be performed fast enough such that the user does not experience undue delays while the system renders the waveform for display on the display screen.
However, modern EDA tools are now generating massive quantities of waveform data, e.g., involving tens of millions of data objects for thousands of waveforms. This is because the modern design process often requires a large number of different testing parameters, such as different runtime-conditions/environmental parameters and process corners, which results in the large number of waveforms. Examples of runtime-conditions/environmental parameters include, e.g., temperatures, battery levels. A process corner refers to a variation of fabrication parameters used to manufacture the circuit design onto a semiconductor wafer. Process corners often represent the extremes of these parameter variations within which the circuit must function correctly, and the circuit running on devices fabricated at these process corners may run slower or faster than specified and/or at lower or higher temperatures and/or at different voltage levels. However, these corners need to be analyzed to check whether the circuit fails to function properly at any of these process extremes, to check if the design is considered to have inadequate design margins.
The problem is that when the user seeks to plot the waveform results in an interactive display with conventional tools, unreasonable levels of latency occur before the waveforms are actually visualized on a display device. This is due, in part, to the massive amount of data located in the massive number of files that are associated with the simulation results for the large numbers of corners, where all of the data is needed to plot the waveforms for the simulation. As a result, the user typically experiences an undue amounts of delay while the system plots the waveforms.
Therefore, there is a need for an improved approach to handle waveform data that that can adequately address these problems with the conventional tools.